import BaseModel from './BaseModel'
import { get, post } from '../api/ajax'
import API from '@/api/apis'
import { DateFormat } from 'yb-tool'
import { ImageFill, ImageLfit, PixelUnitType } from '../utils/filters'

// 学习经验模型
class StudyModel extends BaseModel {

  // 标题 String
  public title = ''
  // 创建时间 Date
  public date = new Date()
  public dateStr = ''
  // 类型 String
  public type = ''
  // 内容 String
  public content = ''
  // 描述 String
  public describe = ''
  // 封面 String
  public pic = ''

  // 构造方法
  constructor() {
    super()
  }

  /* ----- 获取指定图片大小 -------*/
  // 手机端我的界面图片
  get mMePic() {
    return ImageFill(this.pic, 3.2, 3.2, PixelUnitType.rem)
  }

  // 手机学习列表
  get mStudyListPic() {
    return ImageFill(this.pic, 1.6, 1.6, PixelUnitType.rem)
  }

  // 手机端学习详情图片
  get mStudyDetailPic() {
    return ImageLfit(this.pic, 7.5, 0, PixelUnitType.rem)
  }

  // PC端我的界面图片
  get pcMePic() {
    return ImageFill(this.pic, 200, 200)
  }

  // PC端学习列表
  get pcStudyListPic() {
    return ImageFill(this.pic, 100, 100)
  }

  public setDataWithJson(json: object) {
    super.setDataWithJson(json)
    this.dateStr = DateFormat(this.date)
  }

  // 获取所有不同类型数组
  public static typeDistinct() {
    return get(API.study.typeDistinct)
  }

  // 获取个人简历中显示的学习数据
  public static getMeStudyData() {
    return new Promise((resolve, reject) => {
      get(API.study.meData, {
        num: 6,
      }).then((dataArr: any) => {
        resolve(this.getModelsWithArr(dataArr))
      }).catch((err) => {
        reject(err)
      })
    })
  }

  // 获取单个学习数据
  public getModel() {
    return new Promise((resolve, reject) => {
      get(API.study.detail, {
        id: this._id,
      }).then((data) => {
        this.setDataWithJson(data)
        resolve(this)
      }).catch((err) => {
        reject(err)
      })
    })
  }
}

export default StudyModel
